import axios from 'axios'
import store from '@/store'
import router from '@/router'
import ElementUI from 'element-ui'
// import store from '@/store/index'
const myAxios = axios.create({ // 配置基地址
  baseURL: 'http://big-event-vue-api-t.itheima.net'
})

// 添加请求拦截器
myAxios.interceptors.request.use(
  function (config) {
    if (store.state.token) {
      // 在发送请求之前进行操作  每次请求自动把token带上
      config.headers.Authorization = store.state.token
    }
    return config
  },
  function (error) {
    // 对请求错误进行操作
    return Promise.reject(error)
  }
)

// 添加响应拦截器
myAxios.interceptors.response.use(function (response) {
  // 在接收响应做些什么，例如跳转到登录页
  return response
}, function (error) {
  // 对响应错误做点什么
  if (error.response.status === 401) { // 说明token的值过期了
    // 清空vuex里面过期的数据
    store.commit('updateToken', '')
    // 清空用户基本数据
    store.commit('updateUserInfo', {})
    // 强制跳转返回登录页
    router.push('/login')
    // 弹窗提示
    ElementUI.Notification({
      message: '用户登录过期啦,重新登录下~',
      type: 'warning'
    })
  }
  return Promise.reject(error)
})

export default myAxios // 默认导出
